﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace WindowsFormProject.Depo.Raporlar
{
    public partial class TransferEvraklariRpr : Form
    {
        public TransferEvraklariRpr()
        {
            InitializeComponent();
            listView1.View = View.Details;
            listView1.FullRowSelect = true;
            listView1.GridLines = true;
            listView1.Columns.Add("Satır Sayısı").Width = 30;
            listView1.Columns.Add("Tarih").Width = 100;
            listView1.Columns.Add("Ürün Kodu").Width = 150;
            listView1.Columns.Add("Ürün Adı").Width = 200;
            listView1.Columns.Add("Çıkan Miktar").Width = 100;
            listView1.Columns.Add("Hedef Depo").Width = 100;
            listView1.Columns.Add("Kaynak Depo").Width = 100;
            listView1.Columns.Add("Hareket Tipi").Width = 100;
        }

        DBBaglantiDataContext db = new DBBaglantiDataContext();
        GenelIslemler GI = new GenelIslemler();
        int[] dizi = new int[0];
        int sayac = 0;
        int depoid = 0;
        private void bt_calistir_Click(object sender, EventArgs e)
        {
            try
            {
                listView1.Items.Clear();               
                dizi = new int[0];
                sayac = 0;
                if (StokHaraketGonderenSubeID.CheckedItems.Count > 0 && Convert.ToDateTime(dtilktarih.Text) <= Convert.ToDateTime(dtsontarih.Text))
                {
                    foreach (DataRowView item in StokHaraketGonderenSubeID.CheckedItems)
                    {
                       
                        Array.Resize(ref dizi, dizi.Length + 1);
                        dizi[sayac] = Convert.ToInt32(item.Row["SubeID"]);
                        sayac++;
                    }
                }

                else
                {
                    if (StokHaraketGonderenSubeID.CheckedItems.Count <= 0)
                    {
                        MessageBox.Show("Lütfen Depo Seçiniz");
                    }
                    else if (Convert.ToDateTime(dtilktarih.Text) >= Convert.ToDateTime(dtsontarih.Text))
                    {
                        MessageBox.Show("Tarih Kriteri uygun değil");
                    }
                }

                var TransferHareketleri = (from x in db.StokHaraketleris
                                           join y in db.MErkezUrunlers on x.UrunID equals y.UrunId
                                           join z in db.Subelers on x.StokHaraketGonderenSubeID equals z.SubeID
                                           join h in db.Subelers on x.StokHaraketAlanSubeID equals h.SubeID
                                           where  x.StokHaraketGonderenSubeID == dizi.First() && x.StokHaraketTarih >= Convert.ToDateTime(dtilktarih.Text) && x.StokHaraketTarih <= Convert.ToDateTime(dtsontarih.Text) orderby x.StokHaraketTarih
                                           select new { 
                                                        tarih      =   x.StokHaraketTarih, 
                                                        urunkodu   =   x.UrunID, 
                                                        urunadi    =   y.UrunADi,
                                                        miktar     =   x.StokHaraketAdet, 
                                                        kaynaksube =   z.SubeAdi,
                                                        hedefsube  =   h.SubeAdi,
                                                        harekettip = x.StokHaraketHaraketTuru });

                var depoId = dizi.Where((digit, index) => dizi.Length < index);
                foreach (var d in depoId)
                {
                    int depoid = d;


                }
                int satirsayisi = 0;
                foreach (var item in TransferHareketleri)
                {
                     ListViewItem Lst = new ListViewItem();                  
                     satirsayisi +=1;
                     Lst = new ListViewItem(satirsayisi.ToString());                   
                     Lst.SubItems.Add(item.tarih.ToString());
                     Lst.SubItems.Add(item.urunkodu.ToString());
                     Lst.SubItems.Add(item.urunadi.ToString());
                     Lst.SubItems.Add(item.miktar.ToString());
                     Lst.SubItems.Add(item.kaynaksube.ToString());
                     Lst.SubItems.Add(item.hedefsube.ToString());
                     Lst.SubItems.Add(item.harekettip);
                     listView1.Items.Add(Lst);

                }
            }
            catch
            {

            }

        }

        private void TransferEvraklariRpr_Load(object sender, EventArgs e)
        {

            Depo.GenelIslemler.EnterIlerleload(this.Name);
            (StokHaraketGonderenSubeID as ListBox).DataSource = GI.Subeler();
            (StokHaraketGonderenSubeID as ListBox).DisplayMember = "SubeAdi";
            (StokHaraketGonderenSubeID as ListBox).ValueMember = "SubeID";


        }
    }
}
